const goods = require("../sql/goods");

// 获取所有数据：/getgoods
// 获取单条数据：/getgoods?id=jhagjshdfgghjlnk
// 获取指定字段的排序数据：/getgoods?sort=sale&order=-1
// 获取分页数据：/getgoods?index=0&limit=10
// 获取排序&分页数据：/getgoods?index=0&limit=10&sort=sale&order=-1

module.exports = (req, res)=>{
    // 解析前端发送过来的数据
    const {id="", sort="", order="", index="", num=""} = req.query;
    if(Object.keys(req.query).length === 0){
        // 什么数据都没发，默认返回所有数据
        goods.find({},{__v:0,_id:0},(err,data)=>{
            res.send({
                code:1,
                msg:"获取所有数据",
                length: data.length,
                data
            });
        })
    }else if(id){
        // 只要发了id，就必然只有一条数据
        goods.find({goodsId: id},{__v:0,_id:0},(err,data)=>{
            res.send({
                code:1,
                msg:"获取指定单条数据",
                length: data.length,
                data
            });
        })
    }else if(sort && order && !index && !num){
        // 只传了sort和order，没传index和num，返回排序之后的所有数据
        goods.find({},{__v:0,_id:0},(err,data)=>{
            res.send({
                code:1,
                msg:"获取排序数据",
                length: data.length,
                data
            });
        }).sort({ [sort]: order });
    }else if(!sort && !order && (index !== "") && num){
        // 只传了index和num，没传sort和order，返回分页数据
        goods.find({},{__v:0,_id:0},(err,data)=>{
            res.send({
                code:1,
                msg:"获取分页数据",
                length: data.length,
                data
            });
        }).limit(num).skip(index*num);
    }else if(sort && order && (index !== "") && num){
        // 传了index和num和sort和order，返回排序之后的分页数据
        goods.find({},{__v:0,_id:0},(err,data)=>{
            res.send({
                code:1,
                msg:"获取分页数据",
                length: data.length,
                data
            });
        }).limit(num).skip(index*num).sort({ [sort]: order });
    }
}

// 先分页，只对当前这一页数据进行排序
    // 只获取分页数据
    // 对分页数据进行手动排序
        // 选择排序
        // 冒泡排序